Thema |
---|
FEM |
Niveau |
Fortgeschritten |
Zeit zum Abschluss |
60 min |
Autoren |
JohnWang |
FreeCAD-Version |
0.19 |
Beispieldateien |
None |
Siehe auch |
None |
Der Arbeitsbereich FEM enthält Symbolleisten und Menüs. Diese Anleitung zeigt, wie eine Test-Schaltfläche zu einer Symbolleiste hinzugefügt wird. Sie zeigt auch, wie einem Menü ein Menüeintrag hinzugefügt wird.
Die Aufgabe lässt sich in vier Teile aufteilen:
src/Mod/Fem/Gui/Resources/Fem.qrc
muss geändert werden.src/Mod/Fem/femcommands/commands.py
muss geändert werdensrc/Mod/Fem/Gui/Workbench.cpp
muss geändert werden.
Für die Schaltfläche brauchen wir eine Symboldatei. Sie kann mit jedem deiner Lieblingswerkzeuge erstellt werden, muss aber im SVG-Format gespeichert werden. Wir verwenden als Beispiel FEM_testButton.svg
Sie muss hier abgelegt werden: src/Mod/Fem/Gui/Resources/icons/
.
Die neue SVG-Symboldatei muss für den GUI-Button registriert werden, indem sie in src/Mod/Fem/Gui/Resources/Fem.qrc
eingefügt wird:
<file>icons/FEM_testButton.svg</file>
Eine neue Befehlsklasse muss zum Modul src/Mod/Fem/femcommands/commands.py
hinzugefügt werden.
Kopieren Sie einfach einen bestehenden Befehl und passen Sie das Symbol, den Menütext und den Tooltip in __init__(self)
an:
class _testButton(CommandManager):
"The FEM_testButton command definition"
def __init__(self):
super(_testButton, self).__init__()
self.menuetext = "test Button"
self.tooltip = "This is a test button"
self.is_active = "always"
#self.do_activated = "add_obj_on_gui_selobj_noset_edit"
Vergiss nicht, den Befehl am Ende der Moduldatei mit der Methode addCommand(...)
zu registrieren:
FreeCADGui.addCommand(
"FEM_testButton",
_testButton()
)
Hinweis: Bitte schaue diese Diskussion im Forum an, wenn es um Icons geht.
Wir fügen den neuen Befehl sowohl der Symbolleiste Lösen als auch dem Menü Lösen hinzu.
Suche den folgenden Codeschnipsel in /Gui/Workbench.cpp
und füge den neuen Befehl hinzu:
Gui::ToolBarItem* solve = new Gui::ToolBarItem(root);
solve->setCommand("Solve");
*solve << "FEM_SolverCalculixCxxtools"
<< "FEM_SolverCalculiX"
<< "FEM_SolverElmer"
+ << "FEM_testButton"
<< "Separator"
Um den Befehl zum Löser Menü der FEM-Workbench hinzuzufügen, suche nach dem folgenden Codeschnipsel in Workbench.cpp
:
Gui::MenuItem* solve = new Gui::MenuItem;
root->insertItem(item, solve);
solve->setCommand("&Solve");
*solve << "FEM_SolverCalculixCxxtools"
<< "FEM_SolverCalculiX"
<< "FEM_SolverElmer"
<< "FEM_SolverZ88"
+ << "FEM_testButton"
<< "Separator"
Ergebnis: Sie sollten soeben erfolgreich eine Test-Schaltfläche zur Symbolleiste und zum Menü einer FEM-Arbeitsbereich hinzugefügt haben. Jetzt kann FreeCAD kompiliert und Ihre neue Schaltfläche getesten werden.